`<template>
  <div class="obj_summary">
    <el-row>
      <el-col :span="12">
        <div class="Mr-12">
          <div class="H40t">
            <strong class="Tit-h4 hs5">属性</strong>
          </div>
          <el-row>
            <!--属性下拉列表-->
            <el-form :inline="true" :model="ruleForm" ref="ruleForm" :rules="rules" class="demo-form-inline">
              <el-col :span="9" class="select-SX">
                <el-select v-model="current_Attr" placeholder="请选择属性" @change="handleSelectProp" value-key="displayname">
                  <el-option v-for="(item,index) in obj_options" :key="index" :label="item.displayname" :value="item">
                  </el-option>
                  <div>
                    <el-button type="primary" class="addProperty" @click="addProperty">
                      添加属性
                    </el-button>
                  </div>
                </el-select>
              </el-col>
              <!--添加属性值-->
              <el-col :span="15" class="addProTy">
                <el-form-item class="pro_gisData" v-if="current_attr_type==='GisData'">
                  <el-col :span="6">
                    <el-form-item prop="current_attr_location">
                      <el-input v-model="ruleForm.current_attr_location" placeholder="地理位置">
                      </el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="6">
                    <el-form-item prop="current_attr_longitude">
                      <el-input v-model="ruleForm.current_attr_longitude" placeholder="经度">
                      </el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="6">
                    <el-form-item prop="current_attr_latitude">
                      <el-input v-model="ruleForm.current_attr_latitude" placeholder="纬度">
                      </el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="6">
                    <el-button @click="addPropertyValue">增加</el-button>
                  </el-col>
                </el-form-item>
                <el-form-item class="pro_time" v-else-if="current_attr_type==='TimeInterval'">
                  <el-col :span="10">
                    <el-form-item prop="current_attr_startTime">
                      <el-date-picker v-model="ruleForm.current_attr_startTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="开始时间" style="width:100%">
                      </el-date-picker>
                    </el-form-item>
                  </el-col>
                  <el-col :span="10">
                    <el-form-item prop="current_attr_endTime">
                      <el-date-picker v-model="ruleForm.current_attr_endTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="结束时间" style="width:100%">
                      </el-date-picker>
                    </el-form-item>
                  </el-col>
                  <el-col :span="4">
                    <el-button @click="addPropertyValue">增加</el-button>
                  </el-col>
                </el-form-item>
                <el-form-item class="pro_str" v-else-if="current_attr_type==='DateTime'">
                  <el-col :span="16">
                    <el-form-item prop="current_attr_value">
                      <el-date-picker v-model="ruleForm.current_attr_value" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择时间" style="width:100%">
                      </el-date-picker>
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <el-button @click="addPropertyValue">增加</el-button>
                  </el-col>
                </el-form-item>
                <el-form-item class="pro_str" v-else>
                  <el-col :span="16">
                    <el-form-item prop="current_attr_value">
                      <el-input v-model="ruleForm.current_attr_value"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <el-button @click="addPropertyValue">增加</el-button>
                  </el-col>
                </el-form-item>
              </el-col>
            </el-form>
          </el-row>
          <!--属性表格展示-->
          <div style="overflow-y: auto; min-height: 240px;">
            <el-table :data="tableData" style="width: 100%" :show-header="false">
              <el-table-column width="160">
                <template slot-scope="scope">
                  <p style="text-align:right">{{ scope.row.propertyName }}</p>
                </template>
              </el-table-column>
              <el-table-column>
                <template slot-scope="scope">
                  <template v-if="scope.row.propertyType==='TimeInterval'">
                    <p v-for="(item,index) in scope.row.propertyValues" :key="index" style="color:#000;margin-bottom:5px;">
                      <template v-if="item.readOnly==true">
                        {{item.value.timeStart+"至"+item.value.timeEnd}}
                      </template>
                      <template v-if="item.readOnly==false">
                        <template v-if="item.value==''">
                          <el-input v-model="item.value" size="small" style="width:120px;">
                          </el-input>
                        </template>
                        <template v-else>
                          <template v-if="item.edit==true">
                            <el-date-picker v-model="item.value.timeStart" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" style="width:200px" placeholder="开始时间">
                            </el-date-picker>
                            <el-date-picker v-model="item.value.timeEnd" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" style="width:200px" placeholder="开始时间">
                            </el-date-picker>
                            <el-button type="success" size="small" @click="confirmSave(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])">保存</el-button>
                            <el-button type="danger" size="small" @click="canelEditPropertyValue(scope.row.propertyValues,index)">取消</el-button>
                          </template>
                          <template v-else>
                            <el-date-picker v-model="item.value.timeStart" :readonly="true" type="datetime" style="width:200px" placeholder="开始时间">
                            </el-date-picker>
                            <el-date-picker v-model="item.value.timeEnd" :readonly="true" type="datetime" style="width:200px" placeholder="结束时间">
                            </el-date-picker>
                            <i class="el-icon-remove pointer" @click="delProperty(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])"></i>
                            <i class="el-icon-edit-outline pointer" @click="editPropertyValue(scope.row.propertyValues,index)"></i>
                          </template>
                        </template>
                      </template>
                      <span class="dsr">[{{item.dsrArray.join(",")}}]</span>
                    </p>
                  </template>
                  <template v-else-if="scope.row.propertyType==='GisData'">
                    <p v-for="(item,index) in scope.row.propertyValues" :key="index" style="color:#000;margin-bottom:5px;">
                      <template v-if="item.readOnly==true">
                        {{item.value.address+','+item.value.longitude+','+item.value.latitude}}
                      </template>
                      <template v-if="item.readOnly==false">
                        <template v-if="item.value==''">
                          <el-input v-model="item.value" size="small" style="width:120px;">
                          </el-input>
                        </template>
                        <template v-else>
                          <template v-if="item.edit==true">
                            <el-input v-model="item.value.address" size="small" placeholder="地址" style="width:80px;">
                            </el-input>
                            <el-input v-model="item.value.longitude" size="small" placeholder="经度" @keyup.native="checkNum(item['value'])" style="width:80px;">
                            </el-input>
                            <el-input v-model="item.value.latitude" size="small" placeholder="纬度" @keyup.native="checkNum(item['value'])" style="width:80px;">
                            </el-input>
                            <el-button type="success" size="small" @click="confirmSave(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])">保存</el-button>
                            <el-button type="danger" size="small" @click="canelEditPropertyValue(scope.row.propertyValues,index)">取消</el-button>
                          </template>
                          <template v-else>
                            <el-input :value="item.value.address" :readonly="true" size="small" placeholder="地址" style="width:80px;">
                            </el-input>
                            <el-input :value="item.value.longitude" :readonly="true" size="small" placeholder="经度" style="width:80px;">
                            </el-input>
                            <el-input :value="item.value.latitude" :readonly="true" size="small" placeholder="纬度" style="width:80px;">
                            </el-input>
                            <i class="el-icon-remove" style="cursor: pointer;" @click="delProperty(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])"></i>
                            <i class="el-icon-edit-outline pointer" @click="editPropertyValue(scope.row.propertyValues,index)"></i>
                          </template>
                        </template>
                      </template>
                      <span class="dsr">[{{item.dsrArray.join(",")}}]</span>
                    </p>
                  </template>
                  <template v-else-if="scope.row.propertyType==='DateTime'">
                    <p v-for="(item,index) in scope.row.propertyValues" :key="index" style="color:#000;margin-bottom:5px;">
                      <template v-if="item.readOnly==true">
                        {{item.value}}
                      </template>
                      <template v-if="item.readOnly==false">
                        <template>
                          <template v-if="item.edit==true">
                            <el-date-picker v-model="item.value" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width:200px" placeholder="选择时间">
                            </el-date-picker>
                            <el-button type="success" size="small" @click="confirmSave(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])">保存</el-button>
                            <el-button type="danger" size="small" @click="canelEditPropertyValue(scope.row.propertyValues,index)">取消</el-button>
                          </template>
                          <template v-else>
                            <el-date-picker v-model="item.value" :readonly="true" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" style="width:200px" placeholder="选择时间">
                            </el-date-picker>
                            <i title="删除" class="el-icon-remove pointer" @click="delProperty(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])"></i>
                            <i title="编辑" class="el-icon-edit-outline pointer " @click="editPropertyValue(scope.row.propertyValues,index)"></i>
                          </template>
                        </template>
                      </template>
                      <span class="dsr">[{{item.dsrArray.join(",")}}]</span>
                    </p>
                  </template>
                  <template v-else>
                    <p v-for="(item,index) in scope.row.propertyValues" :key="index" style="color:#000;margin-bottom:5px;">
                      <template v-if="item.readOnly==true">
                        <template v-if="(item.value).length>20">
                          <el-tooltip transition="el-fade-in-linear" class="item" effect="dark" :content="item.value" placement="top-start">
                            <span class="pointer">{{(item.value).substring(0,100)+'...'}}</span>
                          </el-tooltip>
                        </template>
                        <template v-else>
                          {{item.value}}
                        </template>
                      </template>
                      <template v-if="item.readOnly==false">
                        <template>
                          <template v-if="item.edit==true">
                            <el-input v-model="item.value" size="small" placeholder="请输入属性值" style="width:120px;">
                            </el-input>
                            <el-button type="success" size="small" @click="confirmSave(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])">保存</el-button>
                            <el-button type="danger" size="small" @click="canelEditPropertyValue(scope.row.propertyValues,index)">取消</el-button>
                          </template>
                          <template v-else>
                            <el-input v-model="item.value" size="small" :readonly="true" style="width:120px;">
                            </el-input>
                            <i title="删除" class="el-icon-remove pointer" @click="delProperty(scope.row.propertyUri,scope.row.propertyType,scope.row.propertyName,item['value'])"></i>
                            <i title="编辑" class="el-icon-edit-outline pointer" @click="editPropertyValue(scope.row.propertyValues,index)"></i>
                          </template>
                        </template>
                      </template>
                   <span class="dsr">[{{item.dsrArray.join(",")}}]</span>
                    </p>
                  </template>
                </template>
              </el-table-column>
            </el-table>
          </div>
        </div>
      </el-col>
      <el-col :span="12">
        <!--操作日志-->
        <div class="Mr-12" style="margin-top:5px">
          <div class="H40t">
            <strong class="Tit-h4 hs5">操作日志</strong>
          </div>
          <operation-log :tableData="operation_log_tableData" @get_opreation_log="get_opreation_log" :loading="log_loading">
          </operation-log>
        </div>
      </el-col>
    </el-row>
    <!--新增属性对话框-->
    <el-dialog :visible.sync="propertyAddVisible" title="新增属性" :append-to-body='true' style="width:80%">
      <property-editor @closeDialog="closeAddPropertyDialog" :objectUri="objectUri">
      </property-editor>
    </el-dialog>
  </div>

</template>
<script>
import util from '@/utils'
// 引入接口api
import { getAssociationAttr, findOperateProperties, getLogList, saveProperty, deleteProperty, updateProperty } from '@/api/archives'
// 引入外部组件
// 属性添加组件
const PropertyEditor = () => import('./propertyEditor.vue')
// 日志组件
const OperationLog = () => import('./operation-log.vue')
export default {
    data () {
    // 验证规则
        var validateValue = (rule, value, callback) => {
            let message = this.current_Attr.displayname
            if (value === '') {
                if (this.current_Attr === '') {
                    this.$message.error('请选择属性!')
                    return false
                }
                callback(new Error(`请输入${message}`))
            } else {
                if (this.current_attr_type === 'String') {
                    if (value === '') {
                        this.$message.error('请输入属性值')
                        return false
                    }
                } else {
                    if (this.current_attr_type === 'Number') {
                        let regx = /^[0-9]*$/
                        if (!regx.test(value)) {
                            callback(new Error(`${message}类型非法,应为数值类型`))
                        }
                    } else if (this.current_attr_type === 'Double') {
                        let regx = /^[-\+]?\d+(\.\d+)?$/
                        if (!regx.test(value)) {
                            callback(new Error(`${message}类型非法,应为双精度的浮点数`))
                        }
                    } else if (this.current_attr_type === 'DateTime') {
                        if (value === '') {
                            callback(new Error(`请输入${message}`))
                        }
                    } else {
                        let regx = /^[-\+]?\d+$/
                        if (!regx.test(value)) {
                            callback(new Error(`${message}类型非法,应为整型`))
                        }
                    }
                }

                callback()
            }
        }
        var validateEndTime = (rule, value, callback) => {
            if (value === '') {
                callback(new Error('请输入结束时间'))
            } else if (
                new Date(value).getTime() <
        new Date(this.ruleForm.current_attr_startTime).getTime()
            ) {
                callback(new Error('开始时间不能大于结束时间!'))
            } else {
                callback()
            }
        }
        let validateLongitude = (rule, value, callback) => {
            let regx = /^-?((0|1?[0-7]?[0-9]?)(([.][0-9]{1,8})?)|180(([.][0]{1,8})?))$/
            if (value === '') {
                callback(new Error('请输入经度'))
            } else if (!regx.test(value)) {
                callback(new Error('请输入合法的经度'))
            } else {
                callback()
            }
        }
        let validateLatitude = (rule, value, callback) => {
            let regx = /^-?((0|[1-8]?[0-9]?)(([.][0-9]{1,8})?)|90(([.][0]{1,8})?))$/
            if (value === '') {
                callback(new Error('请输入纬度'))
            } else if (!regx.test(value)) {
                callback(new Error('请输入合法的纬度'))
            } else {
                callback()
            }
        }
        return {
            // 属性下拉框数据
            obj_options: [],
            // 下拉框选择的属性
            current_Attr: '',
            tableData: [],
            cache_tableDate: [],
            cache_obj_abstract_info: '',
            ruleForm: {
                // 当前属性值
                current_attr_value: '',
                // 当前属性地理位置
                current_attr_location: '',
                // 当前属性经度
                current_attr_longitude: '',
                // 当前属性纬度
                current_attr_latitude: '',
                // 当前属性开始时间
                current_attr_startTime: '',
                // 当前属性结束时间
                current_attr_endTime: ''
            },
            rules: {
                current_attr_value: [{ validator: validateValue, trigger: 'blur' }],
                current_attr_startTime: [
                    { required: true, message: '请输入开始时间', trigger: 'blur' }
                ],
                current_attr_endTime: [{ validator: validateEndTime, trigger: 'blur' }],
                current_attr_location: [
                    { required: true, message: '请输入地理位置', trigger: 'blur' }
                ],
                current_attr_longitude: [
                    { validator: validateLongitude, trigger: 'blur' }
                ],
                current_attr_latitude: [
                    { validator: validateLatitude, trigger: 'blur' }
                ]
            },
            // 当前属性类型
            current_attr_type: 'String',
            // 属性添加对话框是否显示标识符
            propertyAddVisible: false,
            // 日志数据
            operation_log_tableData: [],
            // 日志loading标识符
            log_loading: true
        }
    },
    components: {
        PropertyEditor,
        OperationLog
    },
    props: {
        displayName: {
            type: String,
            default: ''
        },
        objectUri: String,
        instanceUri: String
    },
    mounted () {
        this.get_obj_abstrcat_info()
        this.getPropertyList(this.objectUri)
        this.get_opreation_log()
    },
    methods: {
    // 获取属性下拉列表
        async getPropertyList (objectUri) {
            let propertyList = await findOperateProperties({ uri: objectUri })
            propertyList = propertyList.filter(ele => {
                return ele.allowed === '1'
            })
            this.obj_options = propertyList
        },
        // 属性选择下拉框选择事件
        handleSelectProp () {
            let currentAttr = this.current_Attr
            let representative = currentAttr.representative
            if (representative === '1') {
                this.$message.error('该属性为代表属性，不允许操作!')
                this.current_Attr = ''
                return false
            } else {
                if (!this.checkReadOnly(currentAttr.propertyUri)) {
                    this.$message.error('您已标注过该属性,不可重复添加')
                    this.current_Attr = ''
                    return false
                } else {
                    this.$refs.ruleForm.clearValidate()
                    this.current_attr_type = currentAttr.propertyType
                }
            }
        },
        // 检测是否有标注
        checkReadOnly (uri) {
            let tableData = this.tableData
            for (var i = 0; i < tableData.length; i++) {
                if (tableData[i].propertyUri === uri) {
                    var values = tableData[i].propertyValues
                    for (var j = 0; j < values.length; j++) {
                        if (!values[j].readOnly) {
                            return false
                        }
                    }
                    return true
                }
            }
            return true
        },
        // 添加属性
        addProperty () {
            this.propertyAddVisible = true
        },
        // 关闭新增属性对话框
        closeAddPropertyDialog () {
            this.propertyAddVisible = false
            this.getPropertyList(this.objectUri)
            this.ruleForm.current_attr_value = ''
        },
        // 获取obj摘要属性信息
        async get_obj_abstrcat_info () {
            let data = await getAssociationAttr({ rowkey: this.instanceUri, objectUri: this.objectUri })
            this.tableData = data.propertyList
        },
        // 获取操作日志信息
        async get_opreation_log () {
            let logList = await getLogList({ objectUri: this.objectUri, rowkey: this.instanceUri })
            this.operation_log_tableData = logList.map(item => {
                if (item.propertyType === 'GisData') {
                    item.value = item.value.longitude + ',' + item.value.latitude + ',' + item.value.address
                } else if (item.propertyType === 'TimeInterval') {
                    item.value = item.value.timeStart + '-' + item.value.timeEnd
                } else {
                    item.value = item.value
                }
                return item
            })
            this.get_obj_abstrcat_info()
            this.log_loading = false
        },
        // 添加属性值
        addPropertyValue () {
            if (util.isEmpty(this.current_Attr)) {
                this.$message.error('请选择属性')
                return
            }
            this.$refs.ruleForm.validate(valid => {
                if (valid) {
                    let params = {
                        objectUri: this.objectUri,
                        rowkey: this.instanceUri,
                        propertyList: []
                    }
                    let propertyUri = this.current_Attr.propertyUri
                    let propertyType = this.current_Attr.propertyType
                    if (propertyType == 'TimeInterval') {
                        params.propertyList.push({
                            propertyUri: propertyUri,
                            timeStart: new Date(
                                this.ruleForm.current_attr_startTime
                            ).getTime(),
                            timeEnd: new Date(this.ruleForm.current_attr_endTime).getTime(),
                            propertyType: propertyType
                        })
                    } else if (propertyType === 'GisData') {
                        params.propertyList.push({
                            propertyUri: propertyUri,
                            address: this.ruleForm.current_attr_location,
                            longitude: this.ruleForm.current_attr_longitude,
                            latitude: this.ruleForm.current_attr_latitude,
                            propertyType: propertyType
                        })
                    } else {
                        let value = this.ruleForm.current_attr_value
                        if (propertyType === 'DateTime') {
                            value = new Date(value).getTime()
                        }
                        params.propertyList.push({
                            propertyUri: propertyUri,
                            value: value,
                            propertyType: propertyType
                        })
                    }
                    saveProperty(params).then(data => {
                        this.$message({ message: '新增成功!', type: 'success' })
                        this.get_obj_abstrcat_info()
                        this.get_opreation_log()
                        this.current_Attr = ''
                        Object.keys(this.ruleForm).forEach(key => {
                            this.ruleForm[key] = ''
                        })
                    })
                } else {
                    return false
                }
            })
        },
        // 修改属性值
        editPropertyValue (propertyValues, index) {
            propertyValues.splice(
                index,
                1,
                Object.assign(propertyValues[index], { edit: true, operType: 'edit' })
            )
        },
        // 取消修改属性值
        canelEditPropertyValue (propertyValues, index) {
            propertyValues.splice(
                index,
                1,
                Object.assign(propertyValues[index], { edit: false, operType: 'edit' })
            )
        },
        // 删除属性
        delProperty (propertyUri, type, name, value) {
            this.confirmSave(propertyUri, type, name, value, 'delete')
        },
        // 确认保存
        confirmSave (propertyUri, type, name, value, operaType) {
            let params = {
                objectUri: this.objectUri,
                rowkey: this.instanceUri,
                propertyList: []
            }
            // 验证属性类型是否合法
            if (!util.verifyValue(type, value, name)) {
                return false
            }
            if (type == 'TimeInterval') {
                params.propertyList.push({
                    propertyUri: propertyUri,
                    timeStart: new Date(value.timeStart).getTime(),
                    timeEnd: new Date(value.timeEnd).getTime(),
                    propertyType: type
                })
            } else if (type === 'GisData') {
                params.propertyList.push({
                    propertyUri: propertyUri,
                    address: value.address,
                    longitude: value.longitude,
                    latitude: value.latitude,
                    propertyType: type
                })
            } else {
                if (type === 'DateTime') {
                    value = new Date(value).getTime()
                }
                params.propertyList.push({
                    propertyUri: propertyUri,
                    value: value,
                    propertyType: type
                })
            }

            if (operaType === 'delete') {
                this.$confirm('确定删除?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    deleteProperty(params).then(data => {
                        this.$message({ message: '删除成功!', type: 'success' })
                        this.get_obj_abstrcat_info()
                        this.get_opreation_log()
                    })
                }).catch(() => {
                    this.$message({ type: 'info', message: '已取消删除' })
                })
            } else {
                // 修改属性
                updateProperty(params).then(data => {
                    this.$message({ message: '修改成功!', type: 'success' })
                    this.get_obj_abstrcat_info()
                    this.get_opreation_log()
                })
            }
        },
        // 检查经纬度保留三位小数
        checkNum (value) {
            let { longitude, latitude } = value
            if (typeof longitude === 'number') {
                longitude = Number(longitude).toString()
            }
            if (typeof latitude === 'number') {
                latitude = Number(latitude).toString()
            }
            value.latitude = latitude.replace(/^\D*([1-9]\d*\.?\d{0,3})?.*$/, '$1')
            value.longitude = longitude.replace(/^\D*([1-9]\d*\.?\d{0,3})?.*$/, '$1')
        }
    }
}
</script>
<style lang="less">
.obj_summary {
  height: 500px;
  overflow-y: auto;
  margin-top: 12px;
  .select-SX {
    background-color: #f0f0f0;
    padding: 10px 10px 20px 20px;
    .el-input__inner {
      height: 32px;
      line-height: 32px;
      background-color: #fff;
    }
  }
  .association_info {
    width: 100%;
    overflow-y: auto;
    .typeImg {
      float: left;
    }
    .newLis {
      float: left;
      margin-left: 20px;
      width: 89%;
    }
  }
  .addProTy {
    background-color: #f0f0f0;
    padding: 10px 10px 20px 0;
    .pro_str {
      margin-bottom: 0px !important;
      .el-form-item__content {
        line-height: 32px;
      }
      .el-input__icon {
        line-height: 30px;
      }
    }
    .pro_gisData {
      margin-bottom: 0px !important;
      .el-form-item__content {
        line-height: 32px;
      }
    }
    .pro_time {
      margin-bottom: 0px !important;
      .el-input {
        font-size: 12px;
      }
      .el-form-item__content {
        line-height: 32px;
      }
      .el-input__icon {
        line-height: 30px;
      }
    }
    .el-input__inner {
      height: 32px;
      line-height: 32px;
    }
    .el-button {
      height: 32px;
      line-height: 5px;
    }
  }
  .el-table {
    .el-input__inner {
      height: 32px;
      line-height: 32px;
    }
    .el-icon-time {
      line-height: 32px;
    }
    .dsr{
      float: right;
    }
  }
}
</style>
<style lang="less">
.addProperty {
  padding: 5px 10px !important;
  margin-left: 30% !important;
}
.obj-show {
  .el-tabs__content {
    min-height: 320px;
  }
}
</style>
